<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>Document</title>
	</head>
	<body>
		<script>
			// 数据代理:通过一个对象代理对另一个对象中属性的操作（读/写)
			let number = 19
			let obj = {
				name: "作者",
				sex: "女",
			}

			//Object.defineProperty(对象,"添加字段",{value:"值"})
			Object.defineProperty(obj, "a1", {
				// value: 666,
				// enumerable: true, //控制属性是否可以被枚举 默认为fase
				// writable: true, //控制属性是否被修改 默认为fase
				// configurable: true, //控制属性是否被删除

				//当有人读取Object的a1属性时，get函数就会被调用，且返回值就是a1的值
				get: function() {
					console.log("有人读取了a1")
					return number
				},
				//当有人修改person的age属性时，set函数(setter)就会被调用，且会收到修改的具体值
				set(value) {
					console.log("有人修改了a1值是：" + value)
					number=value
				}
			})
			console.log(obj)
			//console.log(Object.keys(Obj))
		</script>
	</body>
</html>
